package com.ajocer.springbootinit.manager.model;

import dev.langchain4j.agent.tool.ToolSpecification;
import dev.langchain4j.data.message.AiMessage;
import dev.langchain4j.data.message.ChatMessage;
import dev.langchain4j.model.output.Response;

import java.util.List;

/**
 * 支持工具调用的聊天语言模型接口
 */
public interface ToolSpecificChatLanguageModel {

    /**
     * 使用单个工具生成回复
     *
     * @param messages 聊天消息列表
     * @param toolSpecification 工具规范
     * @return AI回复
     */
    Response<AiMessage> generate(List<ChatMessage> messages, ToolSpecification toolSpecification);

    /**
     * 使用多个工具生成回复
     *
     * @param messages 聊天消息列表
     * @param toolSpecifications 工具规范列表
     * @return AI回复
     */
    Response<AiMessage> generate(List<ChatMessage> messages, List<ToolSpecification> toolSpecifications);
} 